package day22;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Demo7 {
    public static void main(String[] args) {
        //1.测试它的基础功能（定长功能）
//        ExecutorService es = Executors.newScheduledThreadPool(3);
//        for (int i = 0; i < 10; i++) {
//            es.execute(() -> {
//                System.out.println(Thread.currentThread().getName());
//            });
//        }
//        es.shutdown();
        //2.测试它的延迟功能（首次延迟时间）需要通过子类new子类
//        ScheduledExecutorService ses = Executors.newScheduledThreadPool(3);
        //ses.schedule(Runnable类型,首次延长时间,时间单位)
//        for (int i = 0; i < 10; i++) {
//            ses.schedule(()->{
//                System.out.println(Thread.currentThread().getName());
//            },3, TimeUnit.SECONDS);
//        }
        //3.测试它的周期功能（每个一段时间都会执行）
        ScheduledExecutorService ses = Executors.newScheduledThreadPool(3);
        //ses.scheduleAtFixedRate(Runnable类型，首次延迟时间，周期时间，时间单位)
        ses.scheduleAtFixedRate(()->{
            System.out.println(Thread.currentThread().getName());
        }, 5, 3, TimeUnit.SECONDS);
    }
}
